﻿Imports System.Resources
Imports System.Threading
Imports Biz
Imports BLL
Imports DevComponents.DotNetBar


Public Class ctrlEdicionRequisitos

    Private _llamador As frmMainMetro
    Private _oBusqueda As cBusqueda
    Private _RM As ResourceManager


    Public Sub SetIdioma()

        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        btnSalir.Text = _RM.GetString("btnSalir")
        lblTituloForm.Text = _RM.GetString("strRequiBusquedas")

        advTreeRequisitos.Columns("colHeaderDescripcion").Text = _RM.GetString("strDescripcion")
        advTreeRequisitos.Columns("colHeaderDetalle").Text = _RM.GetString("strDetalle")
        advTreeRequisitos.Refresh()

    End Sub


    Public Property Llamador() As frmMainMetro
        Get
            Return _llamador
        End Get
        Set(value As frmMainMetro)
            _llamador = value
        End Set
    End Property

    Public Sub MostrarParaEdicion(oBusqueda As cBusqueda)

        lblMensajes.Text = ""

        _oBusqueda = oBusqueda

        LlenarForm()

        txtNuevoRequisitosDesc.Focus()

    End Sub

    Private Sub LlenarForm()

        txtNuevoRequisitosDesc.Text = ""
        txtNuevoRequisitosDetalle.Text = ""

        CargarGrilla(_oBusqueda)

    End Sub

    Private Sub btnSalir_Click(sender As Object, e As EventArgs) Handles btnSalir.Click
        _llamador.RefrescarGrillaRequisitos()
        _llamador.CloseModalPanel(Me, DevComponents.DotNetBar.Controls.eSlideSide.Left)
    End Sub

    Private Sub btnRequisitosNuevo_Click(sender As Object, e As EventArgs) Handles btnRequisitosNuevo.Click
        Dim oAux As cRequisito


        If ValidarForm() Then
            oAux = New cRequisito
            oAux.Busq_Numero = _oBusqueda.Busq_Numero
            oAux.Req_Descrip = txtNuevoRequisitosDesc.Text
            oAux.Req_Detalle = txtNuevoRequisitosDetalle.Text

            Try
                GestorRequisito.Instance.Ingresar(oAux)
                GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.RequisitoAlta))

            Catch ex As Excepciones.RequisitoFalloAlta
                Main.ManejarExcepcion(ex)
            Catch ex As Exception
                Main.ManejarExcepcion(ex)
            End Try

            CargarGrilla(_oBusqueda)

            LlenarForm()

            txtNuevoRequisitosDesc.Focus()
        Else
            lblMensajes.Text = "Complete todos los datos requeridos..."
        End If
    End Sub

    Private Sub btnRequisitosEliminar_Click(sender As Object, e As EventArgs) Handles btnRequisitosEliminar.Click
        Dim oAux As cRequisito = New cRequisito

        If Not advTreeRequisitos.SelectedNode Is Nothing Then
            If MessageBox.Show("Confirma la eliminación del registro?", "Confirmar acción", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK Then
                oAux.Busq_Numero = _oBusqueda.Busq_Numero
                oAux.Req_Item = Utils.Convert.ToInt16(advTreeRequisitos.SelectedNode.Tag)

                Try
                    GestorRequisito.Instance.Eliminar(oAux)
                    GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.RequisitoBaja))

                    CargarGrilla(_oBusqueda)

                Catch ex As Excepciones.RequisitoFalloBaja
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try
            End If
        End If
    End Sub

    Public Sub CargarGrilla(oBusqueda As cBusqueda)
        Dim oRequisito As cRequisito
        Dim colObjetos As Collection
        Dim oNode As DevComponents.AdvTree.Node


        advTreeRequisitos.BeginUpdate()

        advTreeRequisitos.Nodes.Clear()

        Try
            colObjetos = GestorRequisito.Instance.ConsultarPorBusqueda(oBusqueda)

            If Not colObjetos Is Nothing Then

                For Each oRequisito In colObjetos

                    oNode = New DevComponents.AdvTree.Node

                    oNode.Tag = oRequisito.Req_Item
                    oNode.Text = oRequisito.Req_Descrip
                    oNode.Cells.Add(New DevComponents.AdvTree.Cell(oRequisito.Req_Detalle))

                    advTreeRequisitos.Nodes.Add(oNode)

                Next
            End If

        Catch ex As Excepciones.RequisitoFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        advTreeRequisitos.EndUpdate()

        advTreeRequisitos.Refresh()

    End Sub

    Private Function ValidarForm() As Boolean
        Dim bValido As Boolean = True

        If txtNuevoRequisitosDesc.Text.Trim = "" Then bValido = False

        ValidarForm = bValido

    End Function

End Class
